<?
if (!defined('PAGER_NUMBER_STYLE')) 
	define('PAGER_NUMBER_STYLE', 'style="background-color: #EEEEEE; border: 1px solid silver; font-weight: bold; font-size: 10px; padding: 3px;"');
if (!defined('PAGER_LEFT_ARROW_IMG')) 
	define('PAGER_LEFT_ARROW_IMG', DEV_ICONS_DIR.'Pager/lewy.gif');
if (!defined('PAGER_RIGHT_ARROW_IMG')) 
	define('PAGER_RIGHT_ARROW_IMG', DEV_ICONS_DIR.'Pager/prawy.gif');
if (!defined('PAGER_FIRST_ARROW_IMG')) 
	define('PAGER_FIRST_ARROW_IMG', DEV_ICONS_DIR.'Pager/l_lewy.gif');
if (!defined('PAGER_LAST_ARROW_IMG')) 
	define('PAGER_LAST_ARROW_IMG', DEV_ICONS_DIR.'Pager/p_prawy.gif');
if (!defined('PAGER_DISABLED_LEFT_ARROW_IMG')) 
	define('PAGER_DISABLED_LEFT_ARROW_IMG', DEV_ICONS_DIR.'Pager/lewy_gray.gif');
if (!defined('PAGER_DISABLED_RIGHT_ARROW_IMG')) 
	define('PAGER_DISABLED_RIGHT_ARROW_IMG', DEV_ICONS_DIR.'Pager/prawy_gray.gif');
if (!defined('PAGER_DISABLED_FIRST_ARROW_IMG')) 
	define('PAGER_DISABLED_FIRST_ARROW_IMG', DEV_ICONS_DIR.'Pager/l_lewy_gray.gif');
if (!defined('PAGER_DISABLED_LAST_ARROW_IMG')) 
	define('PAGER_DISABLED_LAST_ARROW_IMG', DEV_ICONS_DIR.'Pager/p_prawy_gray.gif');

/**
 * Klasa DataUtils - docelowo zbior statycznych metod obrobki danych
 *
 */
class DataUtils{
	
	/**
	 * Metoda pager - zwraca na podstawie przekazanych parametrow linijke nawigacyjna podzialu na strony - rekordy z bazy
	 *
	 * @param integer $pageIndex - zadany numer strony
	 * @param integer $rCount - liczba rekordow zwrocona przez konkretne zapytanie
	 * @param integer $limit - limit rekordow - do wyliczenia stron
	 * @param string $param - dodatkowe parametry do param, np cmd=costam
	 * @param integer $maxPages - maksymalna ilosc stron wyswietlanych na pasku - najlepiej liczba nieparzysta - srodkowa bedzie dzielic na dwie rowne polowy
	 * @param integer $ajax - 1 jesli output ma uwzgledniac metode javascript serwujaca dane ajaxem, 0 jesli ma byc budowany href=""
	 * @param string $ajaxMethod - nazwa metody ajaxowej do bloku onclick - ostatnim parametrem metody winnien byc indeks strony, pozostale nalezy ujac w $param
	 * @return string
	 */
	public static function pager($pageIndex, $rCount, $limit, $param = '', $maxPages = 6, $ajax = 0, $ajaxMethod = '', $icons = true){
		

		
		SessionRegistry::setVal('limit', $limit);
		if ($rCount > 0){
			$pageNo = ($rCount/$limit);
			if (intval($pageIndex) >= $maxPages){
				$lDelim = intval($pageIndex)-$maxPages;
			}
			else 
				$lDelim = 0;
			
			if ((intval($pageIndex)+$maxPages) < ceil($pageNo) && (ceil($pageNo) > ($maxPages*2))){
				if (intval($pageIndex) < $maxPages){
					$rDelim = (intval($pageIndex)+$maxPages)+($maxPages-(intval($pageIndex))-1);
				}
				else{
					$rDelim = intval($pageIndex)+($maxPages-1);
				}
			}
			else{
				$rDelim = ceil($pageNo);
				if ($pageNo <= ($maxPages*2)) 
					$lDelim = 0;
				else{
					$diff = (intval($pageIndex)+$maxPages) - ceil($pageNo);
					$lDelim = $lDelim-$diff;
				}
			}
					
			if (!SessionRegistry::getVal('offset')){ 
				SessionRegistry::setVal('offset', 0);
			}
				
			if (!$pageIndex) 
				$pageIndex = 1;
				
			if (isset($pageIndex)){
				SessionRegistry::setVal('offset', (($limit*intval($pageIndex))-$limit));
			}
	
			//echo SessionRegistry::getVal('limit');
			//echo SessionRegistry::getVal('offset');
		
			if (SessionRegistry::getVal('offset') > $rCount) 
				SessionRegistry::setVal('offset', ($rCount-$limit));
			if (SessionRegistry::getVal('offset') < 0) 
				SessionRegistry::setVal('offset', 0);
			
			$bottom = (SessionRegistry::getVal('offset')-$limit);
			$top = (SessionRegistry::getVal('offset')+$limit);
			
			if ($ajax == 0){
				if ($top < $rCount){
					$nextPage = '<td><a href="'.$param.''.(intval($pageIndex)+1).'">'.($icons?'<img src="'.PAGER_RIGHT_ARROW_IMG.'" border="0" />':'').'</a></td>';
					$nextPage .= '<td><a href="'.$param.''.ceil($pageNo).'">'.($icons?'<img src="'.PAGER_LAST_ARROW_IMG.'" border="0" />':'').'</a></td>';
				}else{
					
					if($icons){
						$nextPage = '<td><img src="'.PAGER_DISABLED_RIGHT_ARROW_IMG.'" border="0" /></td>';
						$nextPage .= '<td><img src="'.PAGER_DISABLED_LAST_ARROW_IMG.'" border="0" /></td>';
					}
					else 
						$nextPage = '';
				}
				if ($bottom >= 0){
					$prevPage = '<td><a href="'.$param.'1">'.($icons?'<img src="'.PAGER_FIRST_ARROW_IMG.'" border="0" />':'').'</a></td>';
					$prevPage .= '<td><a href="'.$param.''.(intval($pageIndex)-1).'">'.($icons?'<img src="'.PAGER_LEFT_ARROW_IMG.'" border="0" />':'').'</a></td>';
				}else{
					if($icons){
						$prevPage = '<td><img src="'.PAGER_DISABLED_FIRST_ARROW_IMG.'" border="0" /></td>';
						$prevPage .= '<td><img src="'.PAGER_DISABLED_LEFT_ARROW_IMG.'" border="0" /></td>';
					}
					else 
						$prevPage = '';
				}
				
				$pages = '<table class="pager"><tr>'.$prevPage.'';
				
				$lp = $lDelim;
				
				for ($i = $lDelim; $i < $rDelim; $i++){
					$lp++;
					if ($lp == intval($pageIndex)) 
						$lp_out = '<a href="#" class="active">'.$lp.'</a>';
					else 
						$lp_out = $lp;
				
					$pages .= '<td >'.$lp_out.'</td>';
				}
				
				$pages .= ''.$nextPage.'</tr></table>';
			}else{
				if ($top < $rCount) {
					$nextPage = '&nbsp;&nbsp;&nbsp;<a href="#" class="admpagin" onclick="'.$ajaxMethod.'(\''.$param.'\', '.(intval($pageIndex)+1).');return false;">następna<img src="/'.TEMPLATE_DIR.'/images/agr.gif" border="0" /></a>';
					//$nextPage .= '<a href="#" class="admstr" onclick="'.$ajaxMethod.'(\''.$param.'\', '.ceil($pageNo).');return false;">'.($icons?'<img src="'.PAGER_LAST_ARROW_IMG.'" border="0" />':'').'</a>';
				}	
				else {
					if($icons){
						//$nextPage = '<img src=/'.TEMPLATE_DIR.'/images/agr.gif border="0" />';
						//$nextPage .= '<img src=/'.TEMPLATE_DIR.'/images/agr.gif border="0" />';
					}
					else 
						$nextPage = '';
				}
			
				$prevPage = '';
				if ($bottom >= 0) {
					//$prevPage = '<a href="#" class="admstr" onclick="'.$ajaxMethod.'(\''.$param.'\', 1);return false;">'.($icons?'<img src="'.PAGER_FIRST_ARROW_IMG.'" border="0" />':'').'</a>';
					$prevPage = '<a href="#" class="admpagin" onclick="'.$ajaxMethod.'(\''.$param.'\', '.(intval($pageIndex)-1).');return false;"><img src="/'.TEMPLATE_DIR.'/images/agl.gif" border="0" />poprzednia</a>&nbsp;&nbsp;&nbsp;';
				}
				else {
					if($icons){
						$nextPage = '';
						//$prevPage = '<img src="'.PAGER_DISABLED_FIRST_ARROW_IMG.'" border="0" />';
						//$prevPage .= '<img src="'.PAGER_DISABLED_LEFT_ARROW_IMG.'" border="0" />';
					}
					else 
						$prevPage = '';
				}
				
				$pages = $prevPage.'';
				
				$lp = $lDelim;
				
				for ($i = $lDelim; $i < $rDelim; $i++){
					$lp++;
					if ($lp == intval($pageIndex)) 
						$lp_out = $lp;
					else 
						$lp_out = $lp;
					
					$pages .= '<a href="#" class="admstr'.($lp == intval($pageIndex)?' admstrs':'').'" onclick="'.$ajaxMethod.'(\''.$param.'\', '.$lp.');return false;">'.$lp_out.'</a>';
				}
				
				$pages .= ''.$nextPage;
			}
			return $pages;
		}
		else 
			return false;
	}
	
	public static function tfCast($val) {
		return $val=='t' ? 1 : ($val=='f' ? 0 : null);
	}
}

/**
 * Metoda getFck
 *
 * @param string $fieldName
 * @param string $config
 * @param string $value
 * @param integer $height
 * @return FCKEditor $fck
 */
function getFck($fieldName, $config = 'base', $value = '', $height = '250'){
	$oFCKeditor = new FCKeditor($fieldName);
	$oFCKeditor->BasePath = '/view/FCKeditor/'; //zrobic define
	$oFCKeditor->Height = $height;
	$oFCKeditor->Value = $value; 
	if ($config == 'base') 
		$configFile = '/view/FCKconfig/fckTestyBase.js'; //zrobic define
	elseif ($config == 'ext') 
		$configFile = '/view/FCKconfig/fckTestyExtended.js'; //zrobic define

	$oFCKeditor->Config['CustomConfigurationsPath'] = $configFile;
	return $oFCKeditor->CreateHtml();
}

?>